<?php

namespace app\admin\model;

use think\Model;
use think\Session;

class Admin extends Model
{

    // 开启自动写入时间戳字段
    protected $autoWriteTimestamp = 'int';
    // 定义时间戳字段名
    protected $createTime = 'createtime';
    protected $updateTime = 'updatetime';
    public $append = [
        "grouping_text"
    ];

    /**
     * 重置用户密码
     * @author baiyouwen
     */
    public function resetPassword($uid, $NewPassword)
    {
        $passwd = $this->encryptPassword($NewPassword);
        $ret = $this->where(['id' => $uid])->update(['password' => $passwd]);
        return $ret;
    }

    // 密码加密
    protected function encryptPassword($password, $salt = '', $encrypt = 'md5')
    {
        return $encrypt($password . $salt);
    }

    public function getGroupingTextAttr($value, $row)
    {
        if (!empty($row['grouping_id'])) {
            $model = new \app\admin\model\department\Grouping;
            return $model->where(["id" => ["in", $row['grouping_id']]])->column("name");
        }
        return null;
    }

    public function department()
    {
        return $this->belongsTo('app\admin\model\department\Department', 'department_id', 'id', [], 'LEFT')->setEagerlyType(0);
    }

    public function position()
    {
        return $this->belongsTo('app\admin\model\department\Position', 'position_id', 'id', [], 'LEFT')->setEagerlyType(0);
    }

    public function role()
    {
        return $this->belongsTo('app\admin\model\department\Role', 'role_id', 'id', [], 'LEFT')->setEagerlyType(0);
    }

    public function grouping()
    {
        return $this->belongsTo('app\admin\model\department\Grouping', 'grouping_id', 'id', [], 'LEFT')->setEagerlyType(0);
    }

    public function type()
    {
        return $this->belongsTo('app\admin\model\department\Type', 'type_id', 'id', [], 'LEFT')->setEagerlyType(0);
    }

}
